<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // finally的方法：
        // — 无论Promise实例成功或者失败，都能进入finally回调函数
        // — finally不接受promise实例的返回值
        // finally的返回值
        // — 默认穿透（finally的返回值和调用finally的promise实例保持一致）
        // — 当finally中的回调函数返回一个失败的promise时  finally的返回和promise实例保持一致
        // — 当finally中的回调函数 报错，则finally的返回状态为失败，返回值为报错信息



        const p1 = new Promise((resolve, reject) => {
            try {
                console.log("数据请求......");
                // throw new Error("网络错误")
                setTimeout(() => {
                    console.log("数据请求成功");
                    resolve("成功")
                }, 3000)
            } catch (e) {
                reject(e.message)
            }
        })

        const p2 = p1.finally(() => {
            // return 1

            throw new Error("finally大失败")

            return new Promise((resolve, reject) => {
                // resolve("finally成功")
                reject("finally失败")
            })
        })


        console.log("p1", p1);
        console.log("p2", p2);
    </script>




</body>

</html>